use std::env;
use std::process;
use minigrep::Config;
fn main() {
    // std::env::args这个函数返回一个传递给程序的命令行参数的迭代器，调用迭代器的collect方法将其转换为一个集合
    let args: Vec<String> = env::args().collect();
    // 1. 提取参数解析器
    // unwrap_or_else，当Result是Ok时，类似于unwrap,返回Ok内部封装的值，当其值是Err时，该方法会调用一个闭包，即参数中的匿名函数
    let config = Config::build(&args).unwrap_or_else(|err| {
        eprintln!("Problem parsing arguments:{err}");
        // 立即停止程序并将传递给它的数字作为退出状态码
        process::exit(1);
    });
    // 读取文件
    if let Err(e) = minigrep::run(config) {
        eprintln!("Application error: {e}");
        process::exit(1);
    };
}


